package cn.six1943.deepchat.module.ai.controller.admin.umodel.vo;

import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

@Schema(description = "用户 APP - 提供商新增/修改 Request VO")
@Data
public class AppModelSaveReqVO {

    /**
     * 主键
     */
    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "14981")
    private Long id;
    /**
     * 提供商实例id
     */
    @Schema(description = "提供商实例id", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "提供商实例id不能为空")
    private Long keyId;
    /**
     * 名称
     */
    @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "名称不能为空")
    private String name;
    /**
     * 标识
     */
    @Schema(description = "标识", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "标识不能为空")
    private String code;
    /**
     * 图标
     */
    @Schema(description = "图标")
    private String avatar;
    /**
     * 嵌入
     */
    @Schema(description = "嵌入")
    private Boolean embedding;
    /**
     * 视觉识别
     */
    @Schema(description = "视觉识别")
    private Boolean vision;
    /**
     * 函数调用
     */
    @Schema(description = "函数调用")
    private Boolean functioncall;
    /**
     * 深度思考
     */
    @Schema(description = "深度思考")
    private Boolean reasoning;
    /**
     * 联网搜索
     */
    @Schema(description = "联网搜索")
    private Boolean search;
    /**
     * 重排
     */
    @Schema(description = "重排")
    private Boolean rerank;
    /**
     * 最大上下文token
     */
    @Schema(description = "最大上下文token")
    private Integer maxTokens;
    /**
     * 最大输出token
     */
    @Schema(description = "最大输出token")
    private Integer maxOutput;
    /**
     * 向量维度
     */
    @Schema(description = "向量维度")
    private Integer dimension;
    /**
     * 最大行数
     */
    @Schema(description = "最大行数")
    private Integer maxLines;
    /**
     * 单行最大处理Token数
     */
    @Schema(description = "单行最大处理Token数")
    private Integer maxLineTokens;
    /**
     * 排序
     */
    @Schema(description = "排序")
    private Integer sort;

}